From 4c174b2789c68c3861cc251acd5bc8e5b13791db Mon Sep 17 00:00:00 2001 From: parkrrrr Date: Tue, 17 Oct 2006 13:06:58 +0000 Subject: [PATCH] fixed problem with 'all' option in position filter --- position.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/position.c b/position.c index 24aa2d0d3..d8177ad5c 100644 --- a/position.c +++ b/position.c @@ -138,39 +138,40 @@ position_runqueue(queue *q, int nelems, int qtype) break; } } - else if (del ) { - switch (qtype) { + else { + if (del ) { + switch (qtype) { case wptdata: - waypt_del(comp[i]); - waypt_free(comp[i]); + waypt_del(comp[j]); + waypt_free(comp[j]); del = 0; break; case trkdata: - track_del_wpt(cur_rte, comp[i]); - del = !!purge_duplicates; + track_del_wpt(cur_rte, comp[j]); + del = 0; break; case rtedata: - route_del_wpt(cur_rte, comp[i]); + route_del_wpt(cur_rte, comp[j]); del = 0; break; default: break; + } } - } else { - j = i; /* advance last use point */ + j = i; } } if ( del ) { switch (qtype) { case wptdata: - waypt_del(comp[nelems-1]); - waypt_free(comp[nelems-1]); + waypt_del(comp[j]); + waypt_free(comp[j]); break; case trkdata: - track_del_wpt(cur_rte, comp[i]); + track_del_wpt(cur_rte, comp[j]); break; case rtedata: - route_del_wpt(cur_rte, comp[i]); + route_del_wpt(cur_rte, comp[j]); break; default: break; -- 2.30.2